[Home] Python으로 돌아가기

Arduino 11. 초음파 센서

목차

1. 초음파 센서 소개
2. 예제 코드

1. 초음파 센서 소개

[YouTube 영상] https://www.youtube.com/watch?v=vmyrJJKXl-8

- 초음파센서 HC-SR04
- 40kHz의 주파수를 발생시켜 최대 4.0m까지 거리 측정 가능
- 초음파는 1초에 약 340m 이동
- 초음파가 물체에 반사되어 돌아오는 시간차를 계산하여 거리 측정

pulseIn(pin, value) 함수 설명:
- pin: 읽을 핀 번호
- value: HIGH 또는 LOW로 설정된 신호를 측정
- HIGH일 경우, LOW → HIGH → LOW 구간을 측정하여 마이크로초 단위로 반환

2. 예제 코드

🔗 초음파 센서 코드:


nt echo = 8;  // 초음파 센서의 에코 핀을 8번 핀에 연결
int trig = 9;  // 초음파 센서의 트리거 핀을 9번 핀에 연결


void setup() {
  Serial.begin(9600);  // 시리얼 통신을 9600보 데이터 전송 속도로 초기화
  pinMode(trig, OUTPUT);  // 트리거 핀을 출력 모드로 설정
  pinMode(echo, INPUT);   // 에코 핀을 입력 모드로 설정
}


void loop() {
  float cycletime;  // 에코 핑거의 신호 주기 저장 변수
  float distance;   // 거리 저장 변수
  
  digitalWrite(trig, HIGH);  // 트리거 신호를 HIGH로 설정하여 초음파 발생
  delay(10);                  // 10밀리초 대기
  digitalWrite(trig, LOW);   // 트리거 신호를 LOW로 설정하여 초음파 발생 중지
  
  // 에코 핀으로부터의 펄스 신호를 측정하여 주기를 계산
  cycletime = pulseIn(echo, HIGH);  
  
  // 초음파의 속도(340m/s)를 이용하여 거리를 계산 후 변수에 저장
  distance = ((340 * cycletime) / 10000) / 2;  


  Serial.print("Distance:");  // 시리얼 모니터에 거리 출력 시작
  Serial.print(distance);     // 계산된 거리 출력
  Serial.println("cm");        // 거리 단위 (cm) 출력
  delay(1000);                 // 1초 대기
}